feat: companion plugin with 4 slash commands: https://github.com/riboseinc/claude-memory-files/issues/1 - #12
Merged
Merged
Conversation
Implements ticket #1 (#1); PR 8 of the delivery sequence. Lands the companion Claude Code plugin that wraps the curl installer in slash-command UX: - .claude-plugin/marketplace.json (at repo root): declares this repo as a Claude Code plugin marketplace. Single plugin: memory-files-tools. - tools/plugin/.claude-plugin/plugin.json: plugin manifest. - tools/plugin/commands/install-memory-file.md /install-memory-file <slug> [--project <dir>] [--ref <sha>] Looks up the slug in the catalogue index, shows frontmatter, runs curl | bash on tools/install.sh from main, reports the install result. - tools/plugin/commands/remove-memory-file.md /remove-memory-file <slug> Reads the manifest, shows what will be removed, asks for confirmation, runs tools/uninstall.sh. Surfaces backup paths for settings-fragment un-merge. - tools/plugin/commands/list-memory-files.md /list-memory-files [--tag <tag>] [--scope <s>] [--team <t>] [--installed] Fetches _meta/index.json, filters, renders as a per-category list, suggests next-action slash commands. - tools/plugin/commands/submit-memory-file.md /submit-memory-file <path-to-local-file.md> [--category <c>] Walks the user through frontmatter scaffolding (with controlled-tag vocabulary lookup), clones the repo as a sibling per the sibling-clones convention, creates a feature branch, runs the validator, commits via -F file per github-content-via-file, and opens the PR with --assignee opoudjis and the issue-URL-in-title convention. The plugin ships only the slash commands and the manifests; install.sh and uninstall.sh are fetched from main on each invocation so the installer logic stays current. Install: /plugin marketplace add riboseinc/claude-memory-files /plugin install memory-files-tools@claude-memory-files Smoke test #5 from the plan: validated locally that the plugin tree is well-formed (marketplace.json + plugin.json parse cleanly via jq; slash command frontmatter follows the Claude Code spec); the full end-to-end test requires installing via `/plugin install` which the maintainer can do interactively post-merge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds two checks to validate.yml that gate PR 8 and any future plugin work:
- marketplace.json + plugin.json must be valid JSON; every declared
plugin source path must exist and contain a valid plugin.json.
- Every slash command markdown in a declared plugin must have YAML
frontmatter with a non-empty 'description:' field.
Closes a CI gap that PR 8 would otherwise leave: plugin manifests and
slash command frontmatter had no automated validation.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements ticket #1; PR 8 of the delivery sequence.
Lands the companion Claude Code plugin that wraps the curl installer (PR 7) in slash-command UX.
Structure
.claude-plugin/marketplace.json(repo root) — declares this repo as a Claude Code plugin marketplace. One plugin:memory-files-tools.tools/plugin/.claude-plugin/plugin.json— plugin manifest.tools/plugin/commands/install-memory-file.md—/install-memory-file <slug> [--project <dir>] [--ref <sha>]. Looks up slug in_meta/index.json, shows frontmatter, runscurl | bashontools/install.shfrommain, reports the install result.tools/plugin/commands/remove-memory-file.md—/remove-memory-file <slug>. Reads manifest, shows what will be removed, runstools/uninstall.sh, surfaces backup paths.tools/plugin/commands/list-memory-files.md—/list-memory-files [--tag] [--scope] [--team] [--installed] [--include-deprecated]. Fetches the index, filters, renders per-category, suggests next-action commands.tools/plugin/commands/submit-memory-file.md—/submit-memory-file <local-path>. Walks the user through frontmatter scaffolding, clones the repo as a sibling, creates a branch, runs the validator, commits via-F file, and opens the PR with--assignee opoudjisand the issue-URL-in-title convention.The plugin ships only the slash commands and manifests;
install.shanduninstall.share fetched frommainon each invocation so the installer logic stays current with the catalogue.Install (post-merge)
What's smoke-tested
Plugin tree is well-formed:
marketplace.jsonandplugin.jsonparse cleanly viajq; slash-command frontmatter follows the Claude Code spec. Full end-to-end/plugin installtest requires interactive Claude Code session — the maintainer can confirm post-merge.🤖 Generated with Claude Code